var Api = require("./Api.js");
//var sign = require("sign.js")
import axios from 'axios'
import store from './../../vuex/store'
var qs = require('qs')

const commit = store.commit || store.dispatch

/**
 * Get请求
 * url : 请求地址的名称 与 api.js对应 
 * that  一个Page对象
 * cb  成功后交给数据装填
 * data 请求所带参数
 */
function MyGet(url, that, cb, data) {
  axios.get(Api.Url(url), {
    params: data
  }, {timeout: 50000}).then(function (response){ //成功
    //console.log(response)
    cb(response.data, that)
  })
}

/**
 * Get请求
 * url : 请求地址的名称 与 api.js对应 
 * that  一个Page对象
 * cb  成功后交给数据装填
 * data 请求所带参数
 */
function MyGetWithToast(url, that, cb, data) {
  commit('UPDATE_LOADING', true)
  axios.get(Api.Url(url), {
    params: data
  }, {timeout: 50000}).then(function (response){ //成功
    //console.log(response)
    cb(response.data, that)
    //commit('UPDATE_LOADING', false)
  })
}


/** 
 * Post请求
 * url : 请求地址的名称 与 api.js对应 
 * that  一个Page对象
 * cb  成功后交给数据装填
 * data 请求所带参数
 */
function MyPost(url, that, cb, data) {
  var header = {'content-type': 'application/x-www-form-urlencoded'}
  axios.post(Api.Url(url), qs.stringify(data), {headers:header, timeout: 50000})
  .then(function (response){ //成功
    //console.log(response)
    cb(response.data, that)
  })
}

/**
 * Post请求
 * url : 请求地址的名称 与 api.js对应 
 * that  一个Page对象
 * cb  成功后交给数据装填
 * data 请求所带参数
 */
function MyPostWithToast(url, that, cb, data) {
  commit('UPDATE_LOADING', true)
  var header = {'content-type': 'application/x-www-form-urlencoded'}
  axios.post(Api.Url(url), qs.stringify(data), {headers:header, timeout: 50000})
  .then(function (response){ //成功
    //console.log(response)
    cb(response.data, that)
    commit('UPDATE_LOADING', false)
  })
}

// function getUrl(url, data) {
//   url = Api.Url(url);
//   var first = false;
//   for(var i in data) {
//       if(!first) {
//         url += "?";
//         first = true;
//       } else {
//         url += "&";
//       }
//       var cur = i + "=" + data[i];
//       url += cur;
//   }  
//   console.log(url);  
//   return url;
// }

module.exports = {
    MyGet: MyGet,
    MyGetWithToast: MyGetWithToast,
    MyPost: MyPost,
    MyPostWithToast: MyPostWithToast
}